Il registro di UniLearn e l'LMS non contengono gli stessi ID studente. Il team ha bisogno di diversi report, ciascuno con una risposta diversa alla domanda «Quali righe di origine devono apparire?»
Riutilizzare il database del Lab 6
Se hai già eseguito lab6_7_setup.sql nel Lab 6, conserva quei dati. In caso contrario, apri in pgAdmin il file di setup condiviso fornito dal tuo tutor ed eseguilo una volta. Seleziona lab6_7 in ogni nuova connessione di Query Tool.
Inizia con il join che conosci
- Esamina
studentselms_roster: 22 ID del registro e 6 ID dell'LMS. - Esegui l'INNER JOIN della regola di corrispondenza del Lab 6.
- Individua i quattro ID presenti in entrambe le fonti.
- Spiega perché questo risultato non può essere un elenco completo di nessuna delle due fonti.
Cinque richieste di report
Elenca gli account condivisi; mantieni ogni studente del registro; mantieni ogni account LMS; riconcilia entrambe le fonti; genera le opzioni studente–corso. Scriverai query INNER, LEFT, RIGHT, FULL e CROSS JOIN per queste richieste.
SET search_path TO lab6_7;
SELECT s.student_id AS registry_id, s.student_name,
r.student_id AS lms_id, r.lms_name
FROM students AS s
INNER JOIN lms_roster AS r
ON s.student_id = r.student_id
ORDER BY s.student_id;Controlla gli ID abbinati
Quattro righe: S101, S102, S105 e S121. Ogni ID è univoco in entrambe le tabelle, quindi ogni coppia abbinata appare una sola volta. Questo report contiene solo gli account condivisi.
Uma (S121) ha un account LMS anche se non ha iscrizioni. Una corrispondenza tra account non prova la partecipazione a un corso.
Esamina entrambe le fonti
Il roster LMS è un'importazione non convalidata. Volutamente non ha una chiave esterna verso students, quindi S901 e S902 possono esistere solo in quella fonte.
SET search_path TO lab6_7;
SELECT student_id, student_name
FROM students
ORDER BY student_id;
SELECT student_id, lms_name
FROM lms_roster
ORDER BY student_id;| ID LMS | Nome LMS | Nel registro? |
|---|---|---|
| S101 | Alice Wong | Sì |
| S102 | Ben Lau | Sì |
| S105 | Emma Li | Sì |
| S121 | Uma Shah | Sì |
| S901 | Visitatore importato A | No |
| S902 | Visitatore importato B | No |
Il setup condiviso contiene anche 8 corsi, 37 iscrizioni, 8 compiti e 30 consegne per le attività successive. Tutti i record sono fittizi.
Leggi la richiesta prima di scegliere un join
| Richiesta | Risultato richiesto |
|---|---|
| Account condivisi | Solo le coppie di ID che corrispondono. |
| Copertura del registro | Ogni studente del registro, anche senza un account LMS. |
| Verifica dell'importazione LMS | Ogni account LMS importato, anche senza una corrispondenza nel registro. |
| Riconcilia entrambi i sistemi | Account condivisi e record presenti in una sola delle due fonti. |
| Pianificazione dei corsi | Ogni studente selezionato abbinato a ogni corso selezionato. |
Il Lab 6 ha stabilito come le coppie corrispondenti formano le righe. In questo lab, cambia il tipo di join per controllare le righe non abbinate o generare tutte le combinazioni, poi verifica cosa rappresenta ciascuna riga di risultato.